package com.huilian.iotbox.admin.dao;

import com.huilian.iotbox.data.dto.MemberDto;
import com.huilian.iotbox.data.dto.MerchantStoreDto;
import com.huilian.iotbox.data.po.DiscountPackage;
import com.huilian.iotbox.data.po.MerchantStore;
import com.huilian.iotbox.data.vo.CommodityStoreUpDownVo;
import com.huilian.iotbox.data.vo.MerchantStoreVo;
import com.huilian.iotbox.data.vo.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author 谢洛涛
 * @date 2021/1/11 17:44
 */
@Mapper
public interface MerchantStoreDao {
    List<MerchantStore> findAllMerchantStoreByMchId(MerchantStoreDto merchantStoreDto);

    Integer update(MerchantStoreDto merchantStoreDto);

    Integer updateLimit(MerchantStoreDto merchantStoreDto);

    MerchantStore findMerchantStoreById(Integer id);

    List<DiscountPackage> findDiscountPackageBymsId(@Param("merchantStoreId") Integer merchantStoreId);

    List<CommodityStoreUpDownVo> findCommodityStoreByMerchantStoreId(@Param("merchantStoreId") Integer merchantStoreId);

    List<MerchantStoreVo> findMerchantStoreList(MerchantStoreDto merchantStoreDto);

    Integer findDayStoreNewNumByAgencyId(@Param("agencyId") Integer agencyId, @Param("startTime") String startTime, @Param("endTime") String endTie);

    Integer[] findAllMerchantStore(MemberDto memberDto);

    /**
     * 根据集合查询场地无交易个数
     *
     * @return
     */
    Integer findSetStoreNoTrade(@Param("agencyId") Integer agencyId, @Param("set") Set<Integer> set);

    List<MerchantStoreVo> findAllMerchantStoreByMerchantId(String merchantId);

    MerchantStore findMerchantStoreByDeviceNo(@Param("deviceNo") String deviceNo);

    List<MerchantStoreVo> findAllMerchantStoreByCondition(MerchantStoreDto merchantStoreDto);

    Integer[] findAllMerchantStoreIdByUserId(UserInfo userInfo);

    List<MerchantStoreVo> findAllMerchantStoreByListId(@Param("merchantStoreDto") MerchantStoreDto merchantStoreDto);

    List<MerchantStoreVo> findMerchantStoreListByUserId(MerchantStoreDto merchantStoreDto);

    Integer updateIsExchange(MerchantStoreDto merchantStoreDto);

    /**
     * 根据抖音poi_id查询场地信息
     */
    List<MerchantStoreVo> findMerchantStoreOneByDouYinPoiId(String douYinPoiId);

    List<MerchantStoreVo> findAllDouYinPoiId();

    Integer findCountStoreByStoreNo(String storeNo);

    Integer findCountStoreByDouYinPoiId(@Param("douYinPoiId") String poiId);

    MerchantStore findOneMerchantStoreByCondition(MerchantStoreDto merchantStoreDto);

    List<MerchantStoreVo> findBindingPackageMerchantStoreList();

    MerchantStoreVo findMerchantStoreByUserIdByStoreId(MerchantStore merchantStore);

}
